home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 July: Mac OS SDK / Dev.CD Jul 96 SDK / Dev.CD Jul 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc Development Framework / ODFDev / ODF / Found / FWStream / Include / SLBufSin.xh < prev    next >
Encoding:
Text File  |  1996-04-23  |  4.7 KB  |  202 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: SLBufSin.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.18
  7.  *     SOM Emitter emitxh.dll: 2.33
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *     File:        SLBufSin.idl
  13.  * 
  14.  *     Contains:    Interface for abstract random access sink class
  15.  * 
  16.  *     Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  17.  * 
  18.  */
  19.  
  20.  
  21. #ifndef SOM_FW_OBufferedSink_xh
  22. #define SOM_FW_OBufferedSink_xh
  23.  
  24. class FW_OBufferedSink;
  25.  
  26. #define FW_OBufferedSink_MajorVersion 1
  27. #define FW_OBufferedSink_MinorVersion 0
  28.  
  29. /*
  30.  * Passthru lines: File: "C.xh", "before"
  31.  */
  32.  
  33.  
  34. /* C++ SOM defs */
  35. #include <somcls.xh>
  36. #include <somcm.xh>
  37.  
  38. /* C++ parent defs */
  39. #ifndef SOM_FW_ORandomAccessSink_xh
  40. #include <SLRanSin.xh>
  41. #endif
  42.  
  43. #ifndef FW_OBufferedSink_API
  44. #define FW_OBufferedSink_API
  45. /*
  46.  * -- The Class API
  47.  */
  48.  
  49. /*
  50.  * Start of user-defined types:
  51.  */
  52. class SOMClass;
  53. class SOMObject;
  54. class FW_OSink;
  55. class FW_ORandomAccessSink;
  56. class FW_OBufferedSink;
  57.  
  58. /*
  59.  * End of user-defined types.
  60.  */
  61.  
  62. #ifdef OLDIBMSOMAPISUPPORT
  63. #define FW_OBufferedSinkCClassData FW_OBufferedSinkClassData
  64. #define FW_OBufferedSinkNewClass(major,minor) somNewVersionedClassReference(FW_OBufferedSink,major,minor)
  65. #endif
  66.  
  67. /* define xxxMetaClass macro to facilitate (cls ## MetaClass) */
  68. #define FW_OBufferedSinkMetaClass SOMClass
  69.  
  70. #if PRAGMA_ALIGN_SUPPORTED
  71. #  pragma options align=power
  72. #endif
  73.  
  74. /* The API to the FW_OBufferedSink class object, and the methods it introduces. */
  75. SOMEXTERN struct FW_OBufferedSinkClassDataStructure {
  76. #ifdef OLDIBMSOMAPISUPPORT
  77.     SOMClass            *classObject;    /* always zero, use somNewClassReference instead */
  78. #else
  79.     long zero;
  80. #endif
  81.     somStaticClassInfo *sci;
  82.     somDToken        instanceDataToken;
  83.     long reserved [3];
  84.     somMToken InitFromSink;
  85.     somMToken GetORandomAccessSink;
  86.     somMToken Flush;
  87. } SOMDLINK FW_OBufferedSinkClassData;
  88.  
  89. #if PRAGMA_ALIGN_SUPPORTED
  90. #  pragma options align=reset
  91. #endif
  92.  
  93. #if !defined(FW_OBufferedSink_Class_Source) && !defined(SOM_Module_slbufsin_Source)
  94. #if PRAGMA_IMPORT_SUPPORTED
  95. #pragma import list FW_OBufferedSinkClassData
  96. #endif
  97. #endif
  98.  
  99.  
  100. /*
  101.  * -- Typedefs and inline method declarations for left path inherited methods
  102.  * -- are omitted because this compilation had -museinheritedmethods in effect
  103.  */
  104.  
  105.  
  106. /*
  107.  * -- Typedefs for FW_OBufferedSink Method Procedures
  108.  */
  109. SOMEXTERN {
  110. typedef void   (* SOMLINK somTD_FW_OBufferedSink_InitFromSink)(FW_OBufferedSink *somSelf, Environment *ev,
  111.         FW_ORandomAccessSink* aSink,
  112.         long bufferCapacity);
  113. typedef FW_ORandomAccessSink*   (* SOMLINK somTD_FW_OBufferedSink_GetORandomAccessSink)(FW_OBufferedSink *somSelf, Environment *ev);
  114. typedef void   (* SOMLINK somTD_FW_OBufferedSink_Flush)(FW_OBufferedSink *somSelf, Environment *ev);
  115. }
  116.  
  117. #endif /* FW_OBufferedSink_API */
  118.  
  119.  
  120. /*
  121.  * -- This emitter treats Method Tokens as Thunks by default.
  122.  * -- Use the sc modifier "nothunks" to change this default
  123.  */
  124. #undef somresolve_
  125. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  126.  
  127. /*
  128.  * -- The C++ Wrapper Class for FW_OBufferedSink
  129.  */
  130. class FW_OBufferedSink : public FW_ORandomAccessSink
  131. {
  132. public:
  133.  
  134. // FW_OBufferedSink::new registers use of the class object, and then uses somNew
  135. // to allocate memory and load the object method table pointer. 
  136. void *operator new(size_t size)
  137. {
  138.     SOM_IgnoreWarning(size);
  139.     // Allocate memory using the default allocator for FW_OBufferedSink, and
  140.     // clear mem & set method table pointer, call basic initialization
  141. #ifdef SOMCHKNULL
  142.     void * __somResult = (void *)
  143.       somNewObject(FW_OBufferedSink);
  144.     SOMCHKNULL(__somResult);
  145.     return __somResult;
  146. #else
  147.     return (void*) somNewObject(FW_OBufferedSink);
  148. #endif
  149. }
  150.  
  151. // FW_OBufferedSink::delete uses the default deallocator for the object's class.
  152. void operator delete(void * obj)
  153. {
  154.     if (obj) {
  155.         SOM_Resolve(obj,SOMObject,somFree)
  156.            ( (SOMObject*) obj );
  157.     }
  158. }
  159.  
  160. /* method: InitFromSink */
  161. void   InitFromSink(Environment *ev,
  162.         FW_ORandomAccessSink* aSink,
  163.         long bufferCapacity)
  164. {
  165.    SOM_ResolveD(this,FW_OBufferedSink,FW_OBufferedSink,InitFromSink)
  166.     (this,ev,aSink,bufferCapacity);
  167. #ifdef SOMCHKEXCEPT
  168.       SOMCHKEXCEPT;
  169. #endif
  170. }
  171.  
  172. /* method: GetORandomAccessSink */
  173. FW_ORandomAccessSink*   GetORandomAccessSink(Environment *ev)
  174. {
  175.    #ifdef SOMCHKEXCEPT
  176.    FW_ORandomAccessSink* __somResult = 
  177.       SOM_ResolveD(this,FW_OBufferedSink,FW_OBufferedSink,GetORandomAccessSink)
  178.     (this,ev);
  179.       SOMCHKEXCEPT;
  180.    return __somResult;
  181. #else
  182.    return SOM_ResolveD(this,FW_OBufferedSink,FW_OBufferedSink,GetORandomAccessSink)
  183.     (this,ev);
  184. #endif
  185. }
  186.  
  187. /* method: Flush */
  188. void   Flush(Environment *ev)
  189. {
  190.    SOM_ResolveD(this,FW_OBufferedSink,FW_OBufferedSink,Flush)
  191.     (this,ev);
  192. #ifdef SOMCHKEXCEPT
  193.       SOMCHKEXCEPT;
  194. #endif
  195. }
  196.  
  197. };   /* FW_OBufferedSink */
  198.  
  199.  
  200.  
  201. #endif       /* SOM_FW_OBufferedSink_xh */
  202.